﻿using System;

namespace Glorysoft.EAP.Core.Entities
{
    public class ProcessMonitor
    {
        
        /// <summary>
        /// 参数名称,方便发送给非secs设备获取参数
        /// </summary>
        public string ParamName { get; set; }

        /// <summary>
        ///下次获取参数时间,根据设定参数的间隔interval计算
        /// </summary>
        public DateTime DataCollectTime { get; set; }

        /// <summary>
        /// 管控时间
        /// </summary>
        public int ControlDate { get; set; }
        /// <summary>
        /// 提醒时间
        /// </summary>
        public int WarningDate { get; set; }

        /// <summary>
        /// 参数收集间隔,单位秒
        /// </summary>
        public int Interval { get; set; } = 0;

        /// <summary>
        /// 提醒次数
        /// </summary>
        public int WarningTimes { get; set; }
        /// <summary>
        /// 管控次数
        /// </summary>
        public int ControlTimes { get; set; }
        /// <summary>
        /// 管控方式
        /// </summary>
        public int ControlMode { get; set; }
        /// <summary>
        /// 提醒方式
        /// </summary>
        public int WarnningMode { get; set; }
        /// <summary>
        /// 计时
        /// </summary>
        public int Tick { get; set; } = 0;

        /// <summary>
        /// 是否有效
        /// </summary>
        public int IsActive { get; set; } = 1;

        /// <summary>
        /// 
        /// </summary>
        public bool IsLockEQP { get; set; }
        /// <summary>
        ///是否发送过提醒消息
        /// </summary>
        public bool IsWarnSend { get; set; } = true;
        /// <summary>
        ///是否发送过管控消息
        /// </summary>
        public bool IsControlSend { get; set; } = true;
        /// <summary>
        /// 有效期
        /// </summary>
        public DateTime PERIOD_VALIDITY { get; set; }
        /// <summary>
        ///创建时间,控制的起始时间,用来监控首件检从批次开始计算间隔时间
        /// </summary>
        public DateTime Start_Time { get; set; } = DateTime.MinValue;
        ///// <summary>
        ///// 设备上的物料集合
        ///// </summary>
        //public List<string> MatList = new List<string>();
        /// <summary>
        /// 是否发送监控报警提醒
        /// </summary>
        public bool IsAlarmSend { get; set; } = true;
        /// <summary>
        /// 是否做过首检   true=>做过 ; false=>没做过
        /// </summary>
        public bool IsFirstCheck { get; set; } = true;
        /// <summary>
        /// 使用次数
        /// </summary>
        public int UseCount { get; set; }
        ///// <summary>
        ///// 管控次数
        ///// </summary>
        //public int ControlTime { get; set; }
        ///// <summary>
        /////提醒次数
        ///// </summary>
        //public int WarnTime { get; set; }

        /// <summary>
        ///过期时间
        /// </summary>
        public DateTime ExpirationTime { get; set; }
        /// <summary>
        ///发放时间
        /// </summary>
        public DateTime ProvideTime { get; set; }

        /// <summary>
        ///下一次保养时间
        /// </summary>
        public DateTime NextPMTime { get; set; }

        /// <summary>
        ///MSA计划日期
        /// </summary>
        public DateTime PlanMSATime { get; set; }

        /// <summary>
        ///MEA量测计划日期
        /// </summary>
        public DateTime PlanMEATime { get; set; }

        /// <summary>
        ///Sampling计划日期
        /// </summary>
        public DateTime PlanSamplingTime { get; set; }
        /// <summary>
        /// 获取设备SIVD的值
        /// </summary>
        public string  ReplySvidVal { get; set; }

        /// <summary>
        /// 量测负责用户组,量测功能数据量大，先存起来，不用再抓了
        /// </summary>
        public string MEAUserGroup { get; set; }
        /// <summary>
        /// MSA负责用户组,量测功能数据量大，先存起来，不用再抓了
        /// </summary>
        public string MSAUserGroup { get; set; }
        /// <summary>
        /// Sampling负责用户组,量测功能数据量大，先存起来，不用再抓了
        /// </summary>
        public string SamplingUserGroup { get; set; }

        /// <summary>
        /// 公共的负责用户组
        /// </summary>
        public string UserGroup { get; set; }
        /// <summary>
        /// 开始时间
        /// </summary>
        public string StartTime { get; set; }
        /// <summary>
        /// 结束时间
        /// </summary>
        public string EndTime { get; set; }
        /// <summary>
        /// 工单号
        /// </summary>
        public string LotID { get; set; }
        /// <summary>
        /// 工序
        /// </summary>
        public string Step { get; set; }
        /// <summary>
        /// 焊线图
        /// </summary>
        public string BDID { get; set; }
        /// <summary>
        /// 焊线图版本
        /// </summary>
        public string BDVersion { get; set; }
        /// <summary>
        /// Recipe名称
        /// </summary>
        public string RecipeName { get; set; }
        /// <summary>
        /// 消息
        /// </summary>
        public string Message { get; set; }
    }
}
